package com.yanqu.road.entity.log.foxcard;

import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.foxcard.FoxHandCard;
import com.yanqu.road.entity.log.ServerBaseLog;
import com.yanqu.road.entity.log.maidian.BaseLogEntity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldTypeAnnotation(tableName = "t_l_ck_activity_foxcard_drop", desc = "黑狐入侵弃牌", autoSave = true, dataUpload = true, eventName = "red_blackgiveup", uploadCk = true)
public class LogFoxCardDrop extends ServerBaseLog {

    @FieldTypeAnnotation(desc = "活动ID", isIndex = true, dataAttribute = "activityid")
    private int activityId;
    @FieldTypeAnnotation(desc = "玩家ID", isIndex = true)
    private long userId;
    @FieldTypeAnnotation(desc = "关卡id", dataAttribute = "red_blacklev")
    private int stageId;
    @FieldTypeAnnotation(desc = "回合数", dataAttribute = "red_blackid")
    private int round;
    @FieldTypeAnnotation(desc = "替换掉的手牌", dataAttribute = "red_blackgiveupbef", saveJson = true)
    private List<FoxHandCard> dropCards = new ArrayList<>();
    @FieldTypeAnnotation(desc = "替换后的手牌", dataAttribute = "red_blackgiveupaft", saveJson = true)
    private List<FoxHandCard> addCards = new ArrayList<>();
    @FieldTypeAnnotation(desc = "弃牌次数", dataAttribute = "red_blackgiveupnum")
    private int dropCardTimes;
    @FieldTypeAnnotation(desc = "弃牌次数上限", dataAttribute = "red_blackgiveupmax")
    private int dropCardTimesMax;
    @FieldTypeAnnotation(desc = "金币数量", dataAttribute = "red_blackcoin")
    private int gold;
    @FieldTypeAnnotation(desc = "结果0正常 2游戏失败", dataAttribute = "red_blackresult")
    private int result;

    @FieldTypeAnnotation(desc = "时间")
    private Date logTime;

    public LogFoxCardDrop(int activityId, long userId, int stageId, int round) {
        this.activityId = activityId;
        this.userId = userId;
        this.stageId = stageId;
        this.round = round;
        this.result = 0;
        this.logTime = new Date();
    }

    @Override
    public long getUserId() {
        return userId;
    }

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getStageId() {
        return stageId;
    }

    public void setStageId(int stageId) {
        this.stageId = stageId;
    }

    public int getRound() {
        return round;
    }

    public void setRound(int round) {
        this.round = round;
    }

    public List<FoxHandCard> getDropCards() {
        return dropCards;
    }

    public void setDropCards(List<FoxHandCard> dropCards) {
        this.dropCards = dropCards;
    }

    public List<FoxHandCard> getAddCards() {
        return addCards;
    }

    public void setAddCards(List<FoxHandCard> addCards) {
        this.addCards = addCards;
    }

    public int getDropCardTimes() {
        return dropCardTimes;
    }

    public void setDropCardTimes(int dropCardTimes) {
        this.dropCardTimes = dropCardTimes;
    }

    public int getDropCardTimesMax() {
        return dropCardTimesMax;
    }

    public void setDropCardTimesMax(int dropCardTimesMax) {
        this.dropCardTimesMax = dropCardTimesMax;
    }

    public int getGold() {
        return gold;
    }

    public void setGold(int gold) {
        this.gold = gold;
    }

    public Date getLogTime() {
        return logTime;
    }

    public void setLogTime(Date logTime) {
        this.logTime = logTime;
    }

    public int getResult() {
        return result;
    }

    public void setResult(int result) {
        this.result = result;
    }
}
